Memory devices are typically provided as internal, semiconductor, integrated circuits in computers or other electronic devices. There are many different types of memory including random-access memory (RAM), read only memory (ROM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), and flash memory, among others.
Flash memory devices are utilized as non-volatile memory for a wide range of electronic applications. Flash memory devices typically use a one-transistor memory cell that allows for high memory densities, high reliability, and low power consumption.
Uses for flash memory include memory for personal computers, personal digital assistants (PDAs), digital cameras, and cellular telephones. Program code and system data, such as a basic input/output system (BIOS), are typically stored in flash memory devices. This information can be used in personal computer systems, among others.
Memory cells in an array architecture can be programmed to a desired state. That is, electric charge can be placed on or removed from the floating gate of a memory cell to put the cell into a number of stored states. For example, a single level cell (SLC) can represent two data states as represented by the binary digits 1 or 0. Flash memory cells can also store more than two data states, e.g., 1111, 0111, 0011, 1011, 1001, 0001, 0101, 1101, 1100, 0100, 0000, 1000, 1010, 0010, 0110, and 1110. Such cells may be referred to as multi state memory cells, multidigit cells, or multilevel cells (MLCs). MLCs can allow the manufacture of higher density memories without increasing the number of memory cells since each cell can represent more than one digit, e.g., more than one bit.
MLCs can have more than one programmed state, e.g., a cell capable of representing two digits can have four programmed states, a cell capable of representing three digits can have eight program states, and a cell capable of representing four digits can have sixteen programmed states. Thus, MLCs can have 2B programmed states, where B is equal to the number of binary digits that can be stored in the cell. Conventionally, the programmed states directly represent data states. For example, a cell that can store two binary digits can be programmed to one of four programmed states directly corresponding to one of four data states, such as 11, 01, 10, and 00.